package mystudy
// io流读取文件
import (
	"fmt"
	"io/ioutil"
	"os"
	"bufio"
	"io"
)

func DemoIoFile(){
	var filePath string = "D:/07.go/02.gostudy/gdzs.txt"
	defer func(){
		if err := recover();err != nil{
			fmt.Println("报异常：", err)
			return 
		}
	}()
	//io读取文件：自带了文件的开关
	file, err := ioutil.ReadFile(filePath)
	if err != nil {
		fmt.Println("读取出错，错误为：", err)
	}
	fmt.Printf("%v\n",string(file))
	//带有缓存的读取方式
	fmt.Println("---带有缓存的读取方式---")
	file2,  _ := os.Open(filePath)
	fmt.Println(file2)
	defer file2.Close()
	// 创建一个流
	reader := bufio.NewReader(file2)
	for{
		str, err := reader.ReadString('\n')
		if err == nil || err == io.EOF{
			fmt.Println(str)
		}
		if err == io.EOF {
			fmt.Println("---读完了---")
			break
		} else if err != nil {
			fmt.Println("Failed to read file:", err)
			break
		}
	}
	

}